<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Zend_Config_Ini - Zend Framework Manual</title>

    <link href="../css/shCore.css" rel="stylesheet" type="text/css" />
    <link href="../css/shThemeDefault.css" rel="stylesheet" type="text/css" />
    <link href="../css/styles.css" media="all" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Zend Framework</h1>
<h2>Programmer's Reference Guide</h2>
<ul>
    <li><a href="../en/zend.config.adapters.ini.html">Inglês (English)</a></li>
    <li><a href="../pt-br/zend.config.adapters.ini.html">Português Brasileiro (Brazilian Portuguese)</a></li>
</ul>
<table width="100%">
    <tr valign="top">
        <td width="85%">
            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.config.theory_of_operation.html">Teoria de Opera&ccedil;&atilde;o</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.config.html">Zend_Config</a></span><br />
                        <span class="home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.config.adapters.json.html">Zend_Config_Json</a></div>
                    </td>
                </tr>
            </table>
<hr />
<div id="zend.config.adapters.ini" class="section"><div class="info"><h1 class="title">Zend_Config_Ini</h1></div>
    

    <p class="para">
        <span class="classname">Zend_Config_Ini</span> permite aos desenvolvedores armazenar os dados de
        configuração em um formato <acronym class="acronym">INI</acronym> conhecido e lê-los no aplicativo através
        de uma sintaxe de propriedade de objeto aninhado. O formato <acronym class="acronym">INI</acronym> é
        especializado em proporcionar tanto a capacidade de ter uma hierarquia de chaves de dados
        de configuração quanto de herança entre as seções de dados de configuração. Hierarquias de
        dados de configuração são suportadas através da separação das chaves com o ponto ou
        caractere de período (&quot;<em class="emphasis">.</em>&quot;). Uma seção pode estender ou herdar de outra
        seção, seguindo o nome da seção, com um caractere dois pontos (&quot;<em class="emphasis">:</em>&quot;) e
        o nome da seção a partir do qual os dados devem ser herdados.
    </p>

    <blockquote class="note"><p><b class="note">Note</b>: <span class="info"><b>Analisando o Arquivo INI</b><br /></span>
        

        <p class="para">
            <span class="classname">Zend_Config_Ini</span> utiliza a função <a href="http://php.net/parse_ini_file" class="link external">&raquo;  <span class="methodname">parse_ini_file()</span></a>
            do <acronym class="acronym">PHP</acronym>. Por favor reveja esta documentação para estar ciente de seus
            comportamentos característicos, que conduzem o <span class="classname">Zend_Config_Ini</span>,
            tais como os valores especiais &quot;<b><tt>TRUE</tt></b>&quot;,
            &quot;<b><tt>FALSE</tt></b>&quot;, &quot;sim&quot;, &quot;não&quot;, e &quot;<b><tt>NULL</tt></b>&quot;
            são manipulados.
        </p>
    </p></blockquote>

    <blockquote class="note"><p><b class="note">Note</b>: <span class="info"><b>Separador de Chave</b><br /></span>
        

        <p class="para">
            Por padrão, o caractere separador de chave é o caractere de período
            (&quot;<em class="emphasis">.</em>&quot;). Isso pode ser alterado, de qualquer modo, alterando a chave
            <span class="property">nestSeparator</span> de <var class="varname">$options</var> na construção do
            objeto <span class="classname">Zend_Config_Ini</span>. Por exemplo:
        </p>

        <pre class="programlisting brush: php">
$options[&#039;nestSeparator&#039;] = &#039;:&#039;;
$config = new Zend_Config_Ini(&#039;/path/to/config.ini&#039;,
                              &#039;staging&#039;,
                              $options);
</pre>

    </p></blockquote>

    <div class="example" id="zend.config.adapters.ini.example.using"><div class="info"><p><b>Example #1 Usando o Zend_Config_Ini</b></p></div>
        

        <div class="example-contents"><p>
            Este exemplo ilustra uma utilização básica de <span class="classname">Zend_Config_Ini</span>
            para carregar dados de configuração de um arquivo <acronym class="acronym">INI</acronym>. Neste
            exemplo, existem dados de configuração, tanto para um sistema de produção como para um
            sistema de testes. Pois os dados de configuração de um sistema de testes são muito
            semelhantes aos de produção, a seção de testes herda da seção de produção. Neste caso,
            a decisão é arbitrária e poderia ter sido escrita de modo inverso, com a seção de
            produção herdando da seção de testes, embora isso possa não ser o caso em situações
            mais complexas. Suponha-se, então, que os dados de configuração a seguir estão
            contidos em <var class="filename">/path/to/config.ini</var>:
        </p></div>

        <pre class="programlisting brush: ini">
; Dados de configuração da seção de produção
[production]
webhost                  = www.example.com
database.adapter         = pdo_mysql
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname   = dbname

; Os dados de configuração da seção de testes são herdados
; da produção e substitui os valores conforme necessário
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret
</pre>


        <div class="example-contents"><p>
            Em seguida, suponha que o desenvolvedor do aplicativo necessite dos dados de
            configuração de testes do arquivo <acronym class="acronym">INI</acronym>. É o simples caso de carregar
            esses dados especificando o arquivo <acronym class="acronym">INI</acronym> e a seção de testes:
        </p></div>

        <pre class="programlisting brush: php">
$config = new Zend_Config_Ini(&#039;/path/to/config.ini&#039;, &#039;staging&#039;);

echo $config-&gt;database-&gt;params-&gt;host;   // imprime &quot;dev.example.com&quot;
echo $config-&gt;database-&gt;params-&gt;dbname; // imprime &quot;dbname&quot;
</pre>

    </div>

    <blockquote class="note"><p><b class="note">Note</b>: 
        <table id="zend.config.adapters.ini.table" class="doctable table"><div class="info"><caption><b>Parâmetros do Construtor Zend_Config_Ini</b></caption></div>
            

            
                <thead valign="middle">
                    <tr valign="middle">
                        <th>Parâmetro</th>
                        <th>Notas</th>
                    </tr>

                </thead>


                <tbody valign="middle" class="tbody">
                    <tr valign="middle">
                        <td align="left"><var class="varname">$filename</var></td>
                        <td align="left">O arquivo <acronym class="acronym">INI</acronym> a ser carregado.</td>
                    </tr>


                    <tr valign="middle">
                        <td align="left"><var class="varname">$section</var></td>

                        <td align="left">A [seção] no arquivo <acronym class="acronym">INI</acronym> que está sendo carregado.
                            Definir este parâmetro como <b><tt>NULL</tt></b> irá carregar todas
                            as seções. Alternativamente, uma matriz de nomes de seção pode ser
                            fornecida para carregar várias seções.
                        </td>
                    </tr>


                    <tr valign="middle">
                        <td align="left">
                            <var class="varname">$options</var> (padrão <b><tt>FALSE</tt></b>)
                        </td>

                        <td align="left">
                            Matriz de opções. As seguintes chaves são suportadas:

                            <ul class="itemizedlist">
                                <li class="listitem">
                                    <p class="para">
                                        <em class="emphasis"><span class="property">allowModifications</span></em>:
                                        Defina como <b><tt>TRUE</tt></b> para permitir a
                                        alteração subsequente dos dados de configuração carregados
                                        na memória. O padrão é <b><tt>NULL</tt></b>
                                    </p>
                                </li>

                                <li class="listitem">
                                    <p class="para">
                                        <em class="emphasis"><span class="property">nestSeparator</span></em>:
                                        Define o caractere a ser usado como separador de
                                        aninhamento. O padrão é &quot;.&quot;
                                    </p>
                                </li>
                            </ul>
                        </td>
                    </tr>

                </tbody>
            
        </table>

    </p></blockquote>
</div>
        <hr />

            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.config.theory_of_operation.html">Teoria de Opera&ccedil;&atilde;o</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.config.html">Zend_Config</a></span><br />
                        <span class="home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.config.adapters.json.html">Zend_Config_Json</a></div>
                    </td>
                </tr>
            </table>
</td>
        <td style="font-size: smaller;" width="15%"> <style type="text/css">
#leftbar {
	float: left;
	width: 186px;
	padding: 5px;
	font-size: smaller;
}
ul.toc {
	margin: 0px 5px 5px 5px;
	padding: 0px;
}
ul.toc li {
	font-size: 85%;
	margin: 1px 0 1px 1px;
	padding: 1px 0 1px 11px;
	list-style-type: none;
	background-repeat: no-repeat;
	background-position: center left;
}
ul.toc li.header {
	font-size: 115%;
	padding: 5px 0px 5px 11px;
	border-bottom: 1px solid #cccccc;
	margin-bottom: 5px;
}
ul.toc li.active {
	font-weight: bold;
}
ul.toc li a {
	text-decoration: none;
}
ul.toc li a:hover {
	text-decoration: underline;
}
</style>
 <ul class="toc">
  <li class="header home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></li>
  <li class="header up"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></li>
  <li class="header up"><a href="reference.html">Refer&ecirc;ncia do Zend Framework</a></li>
  <li class="header up"><a href="zend.config.html">Zend_Config</a></li>
  <li><a href="zend.config.introduction.html">Introdu&ccedil;&atilde;o</a></li>
  <li><a href="zend.config.theory_of_operation.html">Teoria de Opera&ccedil;&atilde;o</a></li>
  <li class="active"><a href="zend.config.adapters.ini.html">Zend_Config_Ini</a></li>
  <li><a href="zend.config.adapters.json.html">Zend_Config_Json</a></li>
  <li><a href="zend.config.adapters.xml.html">Zend_Config_Xml</a></li>
  <li><a href="zend.config.adapters.yaml.html">Zend_Config_Yaml</a></li>
 </ul>
 </td>
    </tr>
</table>

<script type="text/javascript" src="../js/shCore.js"></script>
<script type="text/javascript" src="../js/shAutoloader.js"></script>
<script type="text/javascript" src="../js/main.js"></script>

</body>
</html>